/*
 * @Author: 码农 2646995216@qq.com
 * @Date: 2025-03-24 13:34:01
 * @LastEditors: 码农 2646995216@qq.com
 * @LastEditTime: 2025-03-24 22:26:53
 * @FilePath: /http/util.hpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

#include<string>
#include<fstream>

using namespace std;

class Util
{
public:
    //截取该请求的第一行，并且将该请求的这一行删除，inbuffer是请求，set是"\r\n"
	//将这里设置为静态函数，是为了防止其他函数传参给了this指针
	static string getfirstline(string& inbuffer,const string& set)
	{
		auto pos=inbuffer.find(set);//在请求中找"\r\n"
		if(pos==string::npos)
		{
			return "";//如果找不到，则返回空
		}

		string str=inbuffer.substr(0,pos);//找到，截取第一行
		inbuffer.erase(0,pos);//将第一行，从请求中删除

		return str;//返回第一行
	}

	//打开网页文件，将代码提取到缓冲区中
	//resourse：文件的路径，buffer：缓冲区，size：文件的大小
	//将这里设置为静态函数，是为了防止其他函数传参给了this指针
	static bool readfile(const string& resourse,char* buffer,int size)
	{
		ifstream in(resourse,ios::binary);//打开文件
		if(!in.is_open())
		{
			 return false;//文件打开失败，则返回false
		}

		in.read(buffer,size);//将网页代码读到buffer中
		in.close();//关闭文件
		return true;
	}

};